<?xml version="1.0" encoding="UTF-8"?>
<model modelUID="r:89b105b1-85c8-4435-bb0c-2e2eb810ad5b(de.compago.mps.bean_ext.typesystem)">
  <persistence version="3" />
  <refactoringHistory />
  <language namespace="7a5dda62-9140-4668-ab76-d5ed1746f2b2(jetbrains.mps.lang.typesystem)" />
  <language namespace="0719b181-fc32-471c-82d3-414b396127a5(de.compago.mps.bean_ext)" />
  <language namespace="f3061a53-9226-4cc5-a443-f952ceaf5816(jetbrains.mps.baseLanguage)" />
  <language namespace="ceab5195-25ea-4f22-9b92-103b95ca8c0c(jetbrains.mps.lang.core)" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c8959033d(jetbrains.mps.lang.annotations.structure)" version="0" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902c1(jetbrains.mps.baseLanguage.constraints)" version="83" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" version="0" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590338(jetbrains.mps.baseLanguage.closures.structure)" version="3" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902db(jetbrains.mps.baseLanguage.blTypes.constraints)" version="0" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902ca(jetbrains.mps.baseLanguage.structure)" version="3" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c8959028c(jetbrains.mps.lang.structure.constraints)" version="11" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902fb(jetbrains.mps.lang.smodel.constraints)" version="21" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590301(jetbrains.mps.lang.smodel.structure)" version="16" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590334(jetbrains.mps.baseLanguage.closures.constraints)" version="2" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902b4(jetbrains.mps.lang.typesystem.structure)" version="3" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590283(jetbrains.mps.lang.core.constraints)" version="2" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590345(jetbrains.mps.lang.pattern.structure)" version="0" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c895902ae(jetbrains.mps.lang.typesystem.constraints)" version="17" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590292(jetbrains.mps.lang.structure.structure)" version="0" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590340(jetbrains.mps.lang.pattern.constraints)" version="2" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c8959032e(jetbrains.mps.baseLanguage.collections.structure)" version="7" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c89590328(jetbrains.mps.baseLanguage.collections.constraints)" version="6" />
  <languageAspect modelUID="r:00000000-0000-4000-0000-011c8959034b(jetbrains.mps.lang.quotation.structure)" version="0" />
  <languageAspect modelUID="r:6928a2c9-f423-4d21-a0cc-742534983b81(de.compago.mps.bean_ext.structure)" version="0" />
  <devkit namespace="2677cb18-f558-4e33-bc38-a5139cee06dc(jetbrains.mps.devkit.language-design)" />
  <maxImportIndex value="1" />
  <import index="1" modelUID="r:6928a2c9-f423-4d21-a0cc-742534983b81(de.compago.mps.bean_ext.structure)" version="0" />
  <node type="jetbrains.mps.lang.typesystem.structure.InferenceRule" id="5150883450469330914">
    <property name="name" value="typeof_PropertyDeclaration" />
    <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="5150883450469330915">
      <node role="statement" type="jetbrains.mps.lang.typesystem.structure.CreateEquationStatement" id="5150883450469330917">
        <node role="leftExpression" type="jetbrains.mps.lang.typesystem.structure.NormalTypeClause" id="5150883450469330922">
          <node role="normalType" type="jetbrains.mps.lang.typesystem.structure.TypeOfExpression" id="5150883450469330923">
            <node role="term" type="jetbrains.mps.lang.typesystem.structure.ApplicableNodeReference" id="5150883450469330925">
              <link role="applicableNode" targetNodeId="5150883450469330916" resolveInfo="declaration" />
            </node>
          </node>
        </node>
        <node role="rightExpression" type="jetbrains.mps.lang.typesystem.structure.NormalTypeClause" id="5150883450469330926">
          <node role="normalType" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="5150883450469330928">
            <node role="operand" type="jetbrains.mps.lang.typesystem.structure.ApplicableNodeReference" id="5150883450469330927">
              <link role="applicableNode" targetNodeId="5150883450469330916" resolveInfo="declaration" />
            </node>
            <node role="operation" type="jetbrains.mps.lang.smodel.structure.SLinkAccess" id="5150883450469330932">
              <link role="link" targetNodeId="1.3223167355424520917" />
            </node>
          </node>
        </node>
      </node>
    </node>
    <node role="applicableNode" type="jetbrains.mps.lang.typesystem.structure.ConceptReference" id="5150883450469330916">
      <property name="name" value="declaration" />
      <link role="concept" targetNodeId="1.6613224131717846917" resolveInfo="PropertyDeclaration" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.typesystem.structure.InferenceRule" id="3604175415938497638">
    <property name="name" value="typeof_BeanCreator" />
    <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="3604175415938497639">
      <node role="statement" type="jetbrains.mps.lang.typesystem.structure.CreateEquationStatement" id="3604175415938497656">
        <node role="leftExpression" type="jetbrains.mps.lang.typesystem.structure.NormalTypeClause" id="3604175415938497659">
          <node role="normalType" type="jetbrains.mps.lang.typesystem.structure.TypeOfExpression" id="3604175415938497660">
            <node role="term" type="jetbrains.mps.lang.typesystem.structure.ApplicableNodeReference" id="3604175415938497662">
              <link role="applicableNode" targetNodeId="3604175415938497640" resolveInfo="creator" />
            </node>
          </node>
        </node>
        <node role="rightExpression" type="jetbrains.mps.lang.typesystem.structure.NormalTypeClause" id="7152877783559580156">
          <node role="normalType" type="jetbrains.mps.lang.typesystem.structure.TypeOfExpression" id="7152877783559580157">
            <node role="term" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="7152877783559580160">
              <node role="operand" type="jetbrains.mps.lang.typesystem.structure.ApplicableNodeReference" id="7152877783559580159">
                <link role="applicableNode" targetNodeId="3604175415938497640" resolveInfo="creator" />
              </node>
              <node role="operation" type="jetbrains.mps.lang.smodel.structure.SLinkAccess" id="7152877783559580164">
                <link role="link" targetNodeId="1.9111793454351686732" />
              </node>
            </node>
          </node>
        </node>
      </node>
    </node>
    <node role="applicableNode" type="jetbrains.mps.lang.typesystem.structure.ConceptReference" id="3604175415938497640">
      <property name="name" value="creator" />
      <link role="concept" targetNodeId="1.9111793454351686730" resolveInfo="BeanCreator" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.typesystem.structure.InferenceRule" id="7152877783559580165">
    <property name="name" value="typeof_BeanDeclaration" />
    <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="7152877783559580166">
      <node role="statement" type="jetbrains.mps.lang.typesystem.structure.CreateEquationStatement" id="7152877783559580168">
        <node role="leftExpression" type="jetbrains.mps.lang.typesystem.structure.NormalTypeClause" id="7152877783559580171">
          <node role="normalType" type="jetbrains.mps.lang.typesystem.structure.TypeOfExpression" id="7152877783559580172">
            <node role="term" type="jetbrains.mps.lang.typesystem.structure.ApplicableNodeReference" id="7152877783559580174">
              <link role="applicableNode" targetNodeId="7152877783559580167" resolveInfo="declaration" />
            </node>
          </node>
        </node>
        <node role="rightExpression" type="jetbrains.mps.lang.typesystem.structure.NormalTypeClause" id="6195158661665953151">
          <node role="normalType" type="jetbrains.mps.lang.quotation.structure.Quotation" id="6195158661665953152">
            <node role="quotedNode" type="de.compago.mps.bean_ext.structure.BeanType" id="6195158661665953154">
              <node role="referenceAntiquotation$link_attribute$bean" type="jetbrains.mps.lang.quotation.structure.ReferenceAntiquotation" id="6195158661665953155">
                <node role="expression" type="jetbrains.mps.lang.typesystem.structure.ApplicableNodeReference" id="6195158661665953157">
                  <link role="applicableNode" targetNodeId="7152877783559580167" resolveInfo="declaration" />
                </node>
              </node>
            </node>
          </node>
        </node>
      </node>
    </node>
    <node role="applicableNode" type="jetbrains.mps.lang.typesystem.structure.ConceptReference" id="7152877783559580167">
      <property name="name" value="declaration" />
      <link role="concept" targetNodeId="1.4947839308727780236" resolveInfo="BeanDeclaration" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.typesystem.structure.InferenceRule" id="6195158661666077971">
    <property name="name" value="typeof_PropertyDefinition" />
    <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="6195158661666077972">
      <node role="statement" type="jetbrains.mps.lang.typesystem.structure.CreateLessThanInequationStatement" id="1218129500289538136">
        <node role="leftExpression" type="jetbrains.mps.lang.typesystem.structure.NormalTypeClause" id="1218129500289538137">
          <node role="normalType" type="jetbrains.mps.lang.typesystem.structure.TypeOfExpression" id="1218129500289538138">
            <node role="term" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="1218129500289538139">
              <node role="operand" type="jetbrains.mps.lang.typesystem.structure.ApplicableNodeReference" id="1218129500289538140">
                <link role="applicableNode" targetNodeId="6195158661666077973" resolveInfo="definition" />
              </node>
              <node role="operation" type="jetbrains.mps.lang.smodel.structure.SLinkAccess" id="1218129500289538141">
                <link role="link" targetNodeId="1.609249696298086958" />
              </node>
            </node>
          </node>
        </node>
        <node role="rightExpression" type="jetbrains.mps.lang.typesystem.structure.NormalTypeClause" id="1218129500289538142">
          <node role="normalType" type="jetbrains.mps.lang.typesystem.structure.TypeOfExpression" id="1218129500289538143">
            <node role="term" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="1218129500289538144">
              <node role="operand" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="1218129500289538145">
                <node role="operand" type="jetbrains.mps.lang.typesystem.structure.ApplicableNodeReference" id="1218129500289538146">
                  <link role="applicableNode" targetNodeId="6195158661666077973" resolveInfo="definition" />
                </node>
                <node role="operation" type="jetbrains.mps.lang.smodel.structure.SLinkAccess" id="1218129500289538147">
                  <link role="link" targetNodeId="1.609249696298086959" />
                </node>
              </node>
              <node role="operation" type="jetbrains.mps.lang.smodel.structure.SLinkAccess" id="1218129500289538148">
                <link role="link" targetNodeId="1.609249696298085744" />
              </node>
            </node>
          </node>
        </node>
        <node role="inequationGroup" type="jetbrains.mps.lang.typesystem.structure.DefaultGroupReference" id="2864897323178690318" />
      </node>
    </node>
    <node role="applicableNode" type="jetbrains.mps.lang.typesystem.structure.ConceptReference" id="6195158661666077973">
      <property name="name" value="definition" />
      <link role="concept" targetNodeId="1.400862818091828237" resolveInfo="PropertyDefinition" />
    </node>
  </node>
  <node type="jetbrains.mps.lang.typesystem.structure.InferenceRule" id="2658782932882919082">
    <property name="name" value="typeof_PropertyAccessOperation" />
    <node role="body" type="jetbrains.mps.baseLanguage.structure.StatementList" id="2658782932882919083">
      <node role="statement" type="jetbrains.mps.lang.typesystem.structure.CreateEquationStatement" id="2658782932882919089">
        <node role="rightExpression" type="jetbrains.mps.lang.typesystem.structure.NormalTypeClause" id="2658782932882919093">
          <node role="normalType" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="2658782932882919100">
            <node role="operand" type="jetbrains.mps.baseLanguage.structure.DotExpression" id="2658782932882919095">
              <node role="operand" type="jetbrains.mps.lang.typesystem.structure.ApplicableNodeReference" id="2658782932882919094">
                <link role="applicableNode" targetNodeId="2658782932882919084" resolveInfo="operation" />
              </node>
              <node role="operation" type="jetbrains.mps.lang.smodel.structure.SLinkAccess" id="2658782932882919099">
                <link role="link" targetNodeId="1.2810096565406086132" />
              </node>
            </node>
            <node role="operation" type="jetbrains.mps.lang.smodel.structure.SLinkAccess" id="2658782932882919104">
              <link role="link" targetNodeId="1.3223167355424520917" />
            </node>
          </node>
        </node>
        <node role="leftExpression" type="jetbrains.mps.lang.typesystem.structure.NormalTypeClause" id="2658782932882919092">
          <node role="normalType" type="jetbrains.mps.lang.typesystem.structure.TypeOfExpression" id="2658782932882919086">
            <node role="term" type="jetbrains.mps.lang.typesystem.structure.ApplicableNodeReference" id="2658782932882919088">
              <link role="applicableNode" targetNodeId="2658782932882919084" resolveInfo="operation" />
            </node>
          </node>
        </node>
      </node>
    </node>
    <node role="applicableNode" type="jetbrains.mps.lang.typesystem.structure.ConceptReference" id="2658782932882919084">
      <property name="name" value="operation" />
      <link role="concept" targetNodeId="1.2810096565406086130" resolveInfo="PropertyAccessOperation" />
    </node>
  </node>
</model>

